/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package master.client;

import info.client.InfoClient;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Enumeration;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.ButtonModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

/**
 *
 * @author mark
 */
public class Change_User extends JFrame implements ActionListener{
    //Declareren van GUI-elementen en andere variabelen
    private JTextField username = new JTextField(10);
    private JTextField password = new JTextField(10);
    private JRadioButton yesButton = new JRadioButton("Ja", false);
    private JRadioButton noButton = new JRadioButton("Nee", true);
    
    private JLabel label_username = new JLabel("Gebruikersnaam");
    private JLabel label_password = new JLabel("Wachtwoord");
    private JButton change = new JButton("Wijzigen");
    
    private JPanel panel = new JPanel();
    private JPanel panel2 = new JPanel();
    private JPanel panel3 = new JPanel();
    
    ButtonGroup buttongroup = new ButtonGroup();
    ButtonModel model = noButton.getModel();
    
    private String email;
    private String _password;
    private String permissions;
    
    public Change_User(String _email, String _ww, String _rechten)
    {
        //Voeg 2 radiobuttons toe aan de buttongroep
        buttongroup.add(yesButton);
        buttongroup.add(noButton);
        
        //Zorg dat de inhoud van het gebruikersnaamveld niet kan worden aangepast.
        username.setEditable(false);

        //voeg panels toe aan de layout van het scherm en voeg elementen toe aan de panels.
        add(this.panel, BorderLayout.NORTH);
        panel2.setLayout(new GridLayout(2, 1));
        add(this.panel3, BorderLayout.AFTER_LAST_LINE);
        panel.add(label_username);
        panel.add(username);
        panel.add(label_password);
        panel.add(password);
        panel2.add(yesButton);
        panel2.add(noButton);
        panel3.add(change);
        
        //Voeg de actionlistener toe aan de wijzigen knop.
        change.addActionListener(this);

        //Maak een border voor het radiobuttonpanel.
        panel2.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Admin?"));

        //Voeg panels toe aan het hoofdpanel.
        panel.add(panel2);
        panel.add(panel3);
        
        //Declareer loginpanel als contentpane.
        setContentPane( panel );
        
        //Geef een aantal eigenschappen aan van het scherm.
        setResizable(false);
        setVisible(true);
        setSize(250, 200);
        setTitle("Gebruiker wijzigen");
        
        //Sla de meegekregen gegevens op in variabelen.
        email = _email;
        _password = _ww;
        permissions = _rechten;
        
        //Zet deze variabelen in de tekstvelden.
        username.setText(email);
        password.setText(_password);
        buttongroup.setSelected(model, true);
        
    }
    
    //Haal op welke radiobutton is geselecteerd in de buttongroup.
    public static JRadioButton getSelection(ButtonGroup group) {
        for (Enumeration e=group.getElements(); e.hasMoreElements(); ) {
            JRadioButton b = (JRadioButton)e.nextElement();
            if (b.getModel() == group.getSelection()) {
                return b;
            }
        }
        return null;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        //Als de wijzigen knop is ingedrukt.
        if(e.getSource() == change)
        { 
            //Haal de tekst uit de tekstvelden en sla die op in variabelen.
            String _email = username.getText();
            String _password_ = password.getText();
            Boolean permissions_bool = null;
            
            //Kijk welke radiobutton is geselecteerd en sla dit opn in de variabele.
            JRadioButton b = getSelection(buttongroup);
            String _permissions = b.getText().toString();
            
            //Als er is aangegeven dat de gebruiker geen admin moet zijn.
            if(_permissions.equals("Nee"))
            {
                permissions_bool = false;
            }
            //Als wel is aangegeven dat hij admin moet zijn.
            else
            {
                permissions_bool = true;
            }
            
            //Als het wachtwoord leeg is gelaten.
            if (_password_.equals(""))
            {
                //Laat een popupschermpje zien waarop staat dat je een wachtwoord moet invullen.
                JOptionPane.showMessageDialog(null,"Vul het wachtwoordveld in","Mislukt",JOptionPane.WARNING_MESSAGE);
            }     
            else
            {
                //Bouw de query op.
                String query = "UPDATE inloggegevens Set wachtwoord='" + _password_ + "', admin='" + permissions_bool + "'Where email ='" + email + "'";

                //Stuur de query naar die Infoserver via de socketconnection.
                InfoClient.socketconnection.send(query);
                        
                 JOptionPane.showMessageDialog(null, email + " is gewijzigd","Geslaagd",JOptionPane.INFORMATION_MESSAGE);

                //Sluit dit scherm af.
                this.setVisible(false);
            }

        }
    
    }
}
